高可用方案
本文介绍 Zadig 高可用保障相关的配置和建议。
# 高可用保障
包括 K8s 基础设施、Zadig 系统组件和数据库的高可用。
# K8s 资源高可用
基础资源的高可用由 Kubernetes 集群提供者(公有云/自建云)保障。
# 应用高可用
提供以下建议保障应用高可用:
使用 K8s 原生的 deployment 部署,确保服务异常退出后能快速重启
通过内置的 metric 接口,结合 Prometheus 和预配置的 Grafana 面板实时监控 Zadig 组件性能指标(CPU/内存利用率)
根据业务规模为各组件配置合适的资源规格,参考 Zadig Chart 的 values.yaml 文件中
microservice.{service}.resources配置项结合 Prometheus alertmanager 配置核心组件监控报警,建议的报警规则:
- aslan、cron、hub-server 组件:CPU 或内存占用率达到资源配置上限的 70%,持续超过 2 分钟时触发报警
- dind 组件:CPU 或内存占用率达到资源配置上限的 80%,持续超过 2 分钟时触发报警
备份当前安装参数和 Chart:
- 通过
helm get values <Zadig Release Name> -n <Zadig Namespace> > Zadig.yaml获取当前安装参数 - 通过
helm pull koderover-chart/zadig --version=<version>备份当前 Chart
- 通过
配置应用多副本,根据业务用量和资源占用情况调整组件副本数:
aslan: 需准备
ReadWriteMany类型的 StorageClass 或 PVC。Helm Values 中指定:microservice.aslan.replicas: <replicas> microservice.aslan.storageClass: <storageClassName> 或 microservice.aslan.replicas: <replicas> microservice.aslan.existingClaim: <pvcName>1
2
3
4
5
6zadig-portal: Helm Values 中指定:
frontend.replicas: <replicas>1user: Helm Values 中指定:
microservice.user.replicas: <replicas>1hubserver: Helm Values 中指定:
microservice.hubServer.replicas: <replicas>1dind: 参考Dind 资源配置
# 数据高可用
建议安装时使用高可用 MongoDB、MySQL 存储介质,并对 Zadig 系统数据定时备份:
- 使用高可用数据库,以阿里云为例:
- MySQL 建议使用 RDS MySQL 高可用版
- MongoDB 选用独占型实例
- 使用高可用制品仓库:
- 使用云厂商提供的高可用镜像仓库/Helm 仓库
- 若使用 K8s Helm Chart 项目,建议集成高可用的对象存储并设为默认使用,数据备份建议:一天一次
- 定期备份数据库数据:
- 若使用公有云,需要手动设置公有云 MySQL/MongoDB 实例的自动备份策略
- 备份策略建议:一天一次
- MinIO 备份策略:一天一次
# FAQs
参考 部署运维 FAQs。


